/***
 *@name index 防抖
 *@author Administrator
 *@date 2021/7/22 22:06
 *@Description
 **/

/**
 * 短时间内大量触发同一事件，只会执行一次函数
 * @param fn 需要要触发的函数
 * @param delay 时间限制
 */
function debounce(fn, delay) {
    let timer = null;
    return function () {
        if (timer)
            clearTimeout(timer)
        timer = setTimeout(fn, delay)
    }
}

/**
 * 规定时间内只能执行一次函数
 * @param fn
 * @param delay
 * @returns {(function(): (boolean|undefined))|*}
 */
function throttle(fn, delay) {
    let isPass = true;
    return () => {
        if (!isPass) {
            return false;
        } else {
            isPass = false;
        }
        setTimeout(()=>{
            fn();
            isPass = true
        },delay)
    }
}



